voicemeeter\interface\parameters/
option.rs1use super::*;
3
4pub struct VoicemeeterOption<'a> {
6 remote: &'a VoicemeeterRemote,
7}
8
9impl<'a> VoicemeeterOption<'a> {
10 #[doc(hidden)]
11 pub fn new(remote: &'a VoicemeeterRemote) -> Self {
12 VoicemeeterOption { remote }
13 }
14
15 pub fn param(&self, dot: impl Display) -> Cow<'static, ParameterNameRef> {
17 Cow::Owned(format!("{VOICEMEETER_OPTION}.{dot}").into())
19 }
20 pub fn sr(&self) -> FloatParameter<'_> {
32 FloatParameter::new_unranged(self.param("sr"), self.remote)
34 }
35 pub fn asio_sr(&self) -> BoolParameter<'_> {
41 BoolParameter::new(self.param("ASIOsr"), self.remote)
42 }
43 pub fn delay(&self, bus: usize) -> IntParameter<'_> {
45 IntParameter::new(self.param(format!("delay[{bus}]")), self.remote, 0..=500)
46 }
47 pub fn buffer_mme(&self) -> IntParameter<'_> {
49 IntParameter::new(self.param("buffer.mme"), self.remote, 128..=2048)
50 }
51 pub fn buffer_wdm(&self) -> IntParameter<'_> {
53 IntParameter::new(self.param("buffer.wdm"), self.remote, 128..=2048)
54 }
55 pub fn buffer_ks(&self) -> IntParameter<'_> {
57 IntParameter::new(self.param("buffer.ks"), self.remote, 128..=2048)
58 }
59 pub fn buffer_asio(&self) -> IntParameter<'_> {
61 IntParameter::new(self.param("buffer.asio"), self.remote, 128..=2048)
62 }
63 pub fn mode_exlusif(&self) -> BoolParameter<'_> {
65 BoolParameter::new(self.param("mode.exclusif"), self.remote)
66 }
67 pub fn mode_swift(&self) -> BoolParameter<'_> {
69 BoolParameter::new(self.param("mode.swift"), self.remote)
70 }
71 pub fn monitor_on_sel(&self) -> BoolParameter<'_> {
73 BoolParameter::new(self.param("MonitorOnSEL"), self.remote)
74 }
75}